#ifndef LJN_AUDIO_PLAYER_H_
#define LJN_AUDIO_PLAYER_H_

#include <string>
#include <memory>

namespace LJNAudio {

class AudioPlayer {
public:
    AudioPlayer();
    ~AudioPlayer();

    bool Init(const std::string& file_path);
    void Reset();
    void Destroy();

    bool Play();
    bool Pause();
    bool Stop();
    int32_t GetDurationInMs();

    bool SeekForward(uint32_t millisecond);
    bool SeekBackward(uint32_t millisecond);
    bool SeekTo(uint32_t millisecond);

    bool SetSpeed(float speed);
    bool SetPitch(float pitch);
private:
    class AudioPlayerImpl;
    std::unique_ptr<AudioPlayerImpl> m_impl;
};

}

#endif // LJN_AUDIO_PLAYER_H_